package com.iplant.aps.service.po.sfc;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.iplant.aps.service.po.bpm.BPMTaskBase;

import java.util.ArrayList;
import java.util.List;

/**
 * 偶换件不合格评审任务
 *
 * @author ShrisJava
 */
public class SFCBOMTask extends BPMTaskBase {

    /**
     * 序列号
     */
    private static final long serialVersionUID = 1L;

    /**
     * 订单ID 存储
     */
    public int OrderID = 0;
    /**
     * 订单对应的WBS号
     */
    public String WBSNo = "";
    /**
     * 订单对应的车型ID
     */
    public int ProductID = 0;
    public String ProductNo = "";
    /**
     * 订单对应的局段ID
     */
    public int CustomerID; // 局段
    public String CustomerCode = "";
    public String CustomerName = "";
    /**
     * 订单对应的车号
     */
    public String PartNo = "";

    /**
     * 工位ID 存储
     */
    public int PartID = 0;
    /**
     * 工位名称
     */
    public String PartName = "";
    /**
     * 工位编号
     */
    public String PartCode = "";

    /**
     * 工序ID 存储
     */
    public int PartPointID = 0;
    /**
     * 工序名称
     */
    public String PartPointName = "";

    /**
     * 对应的BOMID 存储
     */
    public int BOMID = 0;
    /**
     * 对应的BOM子项ID
     */
    public int BOMItemID = 0;

    /**
     * 物料ID 存储
     */
    public int MaterialID = 0;

    public String MaterialNo = "";
    public String MaterialName = "";

    /**
     * 物料数量 存储
     */
    public Double MaterialNumber = 0.0;
    /**
     * 物料单位 存储
     */
    public int UnitID = 0;
    public String UnitText = "";

    /**
     * 等级 存储
     */
    public int Level = 0;
    public String LevelName = "";

    /**
     * 处理意见 存储
     */
    public String Disposal = "";

    /**
     * 修程
     */
    public int LineID = 0;
    public String LineName = "";

    /**
     * 工艺路线
     */
    public int RouteID = 0;

    /**
     * 评审意见
     */
    public int ReviewComments = 0;

    /**
     * 责任
     */
    public int Responsibility = 0;

    /**
     * 工艺师
     */
    public String CraftsmanIDs = "";
    /**
     * 工艺师
     */
    public String CraftsmanNames = "";
    /**
     * 技术工程师
     */
    public String TechnicalEngineerIDs = "";
    /**
     * 技术工程师
     */
    public String TechnicalEngineerNames = "";

    // 赋值属性
    public int TagTypes = 0;

    /**
     * 1常规新件 2修复旧件
     */
    public int SapType = 0;
    public String SapTypeName = "";

    /**
     * 物料子项
     */
    public List<SFCBOMTaskItem> SFCBOMTaskItemList = new ArrayList<>();

    /**
     * 辅助属性
     */
    public String AreaCharge = "";
    public String Remark = "";
    public String ImageList = "";
    public String ReviewCommentsName = "";
    public String ResponsibilityName = "";

    /**
     * A等级物料集合
     */
    public List<SFCBOMTaskItem> SFCBOMTaskItemAList = new ArrayList<>();
    /**
     * B等级物料集合
     */
    public List<SFCBOMTaskItem> SFCBOMTaskItemBList = new ArrayList<>();
    /**
     * C等级物料集合
     */
    public List<SFCBOMTaskItem> SFCBOMTaskItemCList = new ArrayList<>();

    /**
     * SAP推送状态 0未推送 1成功 2失败
     */
    public int SAPStatus = 0;
    /**
     * SAP推送失败文本内容
     */
    public String SAPStatusText = "";

    /**
     * 自修件ID
     */
    public int SRPartID = 0;
    /**
     * 自修件名称
     */
    public String SRPartName = "";
    /**
     * 自修件产品编号
     */
    public String SRProductNo = "";

    /**
     * 已确认的等级
     */
    public String ConfirmedLevels = "";

    public String ImageUrl = "";

    /**
     * 是否零公里准备 0否 1是
     */
    public int IsLGL = 0;

    /**
     * 是否零公里准备文本
     */
    public String IsLGLText="";

    /**
     * 是否质量损失
     */
    public int IsQualityLoss = 0;
    /**
     * 质量损失大类
     */
    public String QualityLossBig = "";
    /**
     * 质量损失小类
     */
    public String QualityLossSmall = "";

    public boolean LevelA = false;
    public boolean LevelB = false;
    public boolean LevelC = false;
    public String VersionNo = "";

    /**
     * 是否易损易耗件
     */
    public int CovaType = 0;

    /**
     * 是否易损易耗件文本
     */
    public String CovaTypeText = "";

    /**
     * 是否过账
     */
    public int IsPost = 0;
    /**
     * 过账信息
     */
    public String PostMsg = "";
    /**
     * 是否为工艺主管(前端自己用，防止报错)
     */
    public boolean IsWorkArea = false;

    public SFCBOMTask() {
        super();
    }

    public SFCBOMTask(int orderID, int partID, int partPointID, int bOMID, int bOMItemID, int materialID,
                      Double materialNumber, int unitID, int level) {
        super();
        OrderID = orderID;
        PartID = partID;
        PartPointID = partPointID;
        BOMID = bOMID;
        BOMItemID = bOMItemID;
        MaterialID = materialID;
        MaterialNumber = materialNumber;
        UnitID = unitID;
        Level = level;
    }

    public boolean isIsWorkArea() {
        return IsWorkArea;
    }

    public void setIsWorkArea(boolean isWorkArea) {
        IsWorkArea = isWorkArea;
    }

    @JsonProperty("OrderID")
    public int getOrderID() {
        return OrderID;
    }

    @JsonProperty("SapTypeName")
    public String getSapTypeName() {
        return SapTypeName;
    }

    @JsonProperty("Remark")
    public String getRemark() {
        return Remark;
    }

    @JsonProperty("ImageList")
    public String getImageList() {
        return ImageList;
    }

    @JsonProperty("ReviewCommentsName")
    public String getReviewCommentsName() {
        return ReviewCommentsName;
    }

    @JsonProperty("ConfirmedLevels")
    public String getConfirmedLevels() {
        return ConfirmedLevels;
    }

    public void setConfirmedLevels(String confirmedLevels) {
        ConfirmedLevels = confirmedLevels;
    }

    @JsonProperty("ResponsibilityName")
    public String getResponsibilityName() {
        return ResponsibilityName;
    }

    public void setRemark(String remark) {
        Remark = remark;
    }

    public void setImageList(String imageList) {
        ImageList = imageList;
    }

    public void setReviewCommentsName(String reviewCommentsName) {
        ReviewCommentsName = reviewCommentsName;
    }

    public void setResponsibilityName(String responsibilityName) {
        ResponsibilityName = responsibilityName;
    }

    @JsonProperty("SFCBOMTaskItemList")
    public List<SFCBOMTaskItem> getSFCBOMTaskItemList() {
        return SFCBOMTaskItemList;
    }

    @JsonProperty("SFCBOMTaskItemAList")
    public List<SFCBOMTaskItem> getSFCBOMTaskItemAList() {
        return SFCBOMTaskItemAList;
    }

    @JsonProperty("SFCBOMTaskItemBList")
    public List<SFCBOMTaskItem> getSFCBOMTaskItemBList() {
        return SFCBOMTaskItemBList;
    }

    @JsonProperty("SFCBOMTaskItemCList")
    public List<SFCBOMTaskItem> getSFCBOMTaskItemCList() {
        return SFCBOMTaskItemCList;
    }

    public void setSFCBOMTaskItemAList(List<SFCBOMTaskItem> sFCBOMTaskItemAList) {
        SFCBOMTaskItemAList = sFCBOMTaskItemAList;
    }

    public void setSFCBOMTaskItemBList(List<SFCBOMTaskItem> sFCBOMTaskItemBList) {
        SFCBOMTaskItemBList = sFCBOMTaskItemBList;
    }

    public void setSFCBOMTaskItemCList(List<SFCBOMTaskItem> sFCBOMTaskItemCList) {
        SFCBOMTaskItemCList = sFCBOMTaskItemCList;
    }

    @JsonProperty("AreaCharge")
    public String getAreaCharge() {
        return AreaCharge;
    }

    public void setAreaCharge(String areaCharge) {
        AreaCharge = areaCharge;
    }

    public void setSFCBOMTaskItemList(List<SFCBOMTaskItem> sFCBOMTaskItemList) {
        SFCBOMTaskItemList = sFCBOMTaskItemList;
    }

    public void setSapTypeName(String sapTypeName) {
        SapTypeName = sapTypeName;
    }

    @JsonProperty("SapType")
    public int getSapType() {
        return SapType;
    }

    public void setSapType(int sapType) {
        SapType = sapType;
    }

    public void setOrderID(int orderID) {
        OrderID = orderID;
    }

    @JsonProperty("TagTypes")
    public int getTagTypes() {
        return TagTypes;
    }

    public void setTagTypes(int tagTypes) {
        TagTypes = tagTypes;
    }

    @JsonProperty("WBSNo")
    public String getWBSNo() {
        return WBSNo;
    }

    public void setWBSNo(String wBSNo) {
        WBSNo = wBSNo;
    }

    @JsonProperty("ProductID")
    public int getProductID() {
        return ProductID;
    }

    public void setProductID(int productID) {
        ProductID = productID;
    }

    @JsonProperty("ProductNo")
    public String getProductNo() {
        return ProductNo;
    }

    public void setProductNo(String productNo) {
        ProductNo = productNo;
    }

    @JsonProperty("CustomerID")
    public int getCustomerID() {
        return CustomerID;
    }

    public void setCustomerID(int customerID) {
        CustomerID = customerID;
    }

    @JsonProperty("CustomerCode")
    public String getCustomerCode() {
        return CustomerCode;
    }

    public void setCustomerCode(String customerCode) {
        CustomerCode = customerCode;
    }

    @JsonProperty("CustomerName")
    public String getCustomerName() {
        return CustomerName;
    }

    public void setCustomerName(String customerName) {
        CustomerName = customerName;
    }

    @JsonProperty("PartNo")
    public String getPartNo() {
        return PartNo;
    }

    public void setPartNo(String partNo) {
        PartNo = partNo;
    }

    @JsonProperty("PartID")
    public int getPartID() {
        return PartID;
    }

    public void setPartID(int partID) {
        PartID = partID;
    }

    @JsonProperty("PartName")
    public String getPartName() {
        return PartName;
    }

    public void setPartName(String partName) {
        PartName = partName;
    }

    @JsonProperty("PartCode")
    public String getPartCode() {
        return PartCode;
    }

    public void setPartCode(String partCode) {
        PartCode = partCode;
    }

    @JsonProperty("PartPointID")
    public int getPartPointID() {
        return PartPointID;
    }

    public void setPartPointID(int partPointID) {
        PartPointID = partPointID;
    }

    @JsonProperty("PartPointName")
    public String getPartPointName() {
        return PartPointName;
    }

    public void setPartPointName(String partPointName) {
        PartPointName = partPointName;
    }

    @JsonProperty("BOMID")
    public int getBOMID() {
        return BOMID;
    }

    public void setBOMID(int bOMID) {
        BOMID = bOMID;
    }

    @JsonProperty("BOMItemID")
    public int getBOMItemID() {
        return BOMItemID;
    }

    public void setBOMItemID(int bOMItemID) {
        BOMItemID = bOMItemID;
    }

    @JsonProperty("MaterialID")
    public int getMaterialID() {
        return MaterialID;
    }

    public void setMaterialID(int materialID) {
        MaterialID = materialID;
    }

    @JsonProperty("MaterialNo")
    public String getMaterialNo() {
        return MaterialNo;
    }

    public void setMaterialNo(String materialNo) {
        MaterialNo = materialNo;
    }

    @JsonProperty("MaterialName")
    public String getMaterialName() {
        return MaterialName;
    }

    public void setMaterialName(String materialName) {
        MaterialName = materialName;
    }

    @JsonProperty("MaterialNumber")
    public Double getMaterialNumber() {
        return MaterialNumber;
    }

    public void setMaterialNumber(Double materialNumber) {
        MaterialNumber = materialNumber;
    }

    @JsonProperty("UnitID")
    public int getUnitID() {
        return UnitID;
    }

    public void setUnitID(int unitID) {
        UnitID = unitID;
    }

    @JsonProperty("UnitText")
    public String getUnitText() {
        return UnitText;
    }

    public void setUnitText(String unitText) {
        UnitText = unitText;
    }

    @JsonProperty("Level")
    public int getLevel() {
        return Level;
    }

    public void setLevel(int level) {
        Level = level;
    }

    @JsonProperty("LevelName")
    public String getLevelName() {
        return LevelName;
    }

    public void setLevelName(String levelName) {
        LevelName = levelName;
    }

    @JsonProperty("Disposal")
    public String getDisposal() {
        return Disposal;
    }

    public void setDisposal(String disposal) {
        Disposal = disposal;
    }

    @JsonProperty("LineID")
    public int getLineID() {
        return LineID;
    }

    public void setLineID(int lineID) {
        LineID = lineID;
    }

    @JsonProperty("LineName")
    public String getLineName() {
        return LineName;
    }

    public void setLineName(String lineName) {
        LineName = lineName;
    }

    @JsonProperty("RouteID")
    public int getRouteID() {
        return RouteID;
    }

    public void setRouteID(int routeID) {
        RouteID = routeID;
    }

    @JsonProperty("ReviewComments")
    public int getReviewComments() {
        return ReviewComments;
    }

    public void setReviewComments(int reviewComments) {
        ReviewComments = reviewComments;
    }

    @JsonProperty("Responsibility")
    public int getResponsibility() {
        return Responsibility;
    }

    public void setResponsibility(int responsibility) {
        Responsibility = responsibility;
    }

    @JsonProperty("CraftsmanIDs")
    public String getCraftsmanIDs() {
        return CraftsmanIDs;
    }

    public void setCraftsmanIDs(String craftsmanIDs) {
        CraftsmanIDs = craftsmanIDs;
    }

    @JsonProperty("CraftsmanNames")
    public String getCraftsmanNames() {
        return CraftsmanNames;
    }

    public void setCraftsmanNames(String craftsmanNames) {
        CraftsmanNames = craftsmanNames;
    }

    @JsonProperty("TechnicalEngineerIDs")
    public String getTechnicalEngineerIDs() {
        return TechnicalEngineerIDs;
    }

    public void setTechnicalEngineerIDs(String technicalEngineerIDs) {
        TechnicalEngineerIDs = technicalEngineerIDs;
    }

    @JsonProperty("TechnicalEngineerNames")
    public String getTechnicalEngineerNames() {
        return TechnicalEngineerNames;
    }

    public void setTechnicalEngineerNames(String technicalEngineerNames) {
        TechnicalEngineerNames = technicalEngineerNames;
    }

    @JsonProperty("SAPStatus")
    public int getSAPStatus() {
        return SAPStatus;
    }

    @JsonProperty("SAPStatusText")
    public String getSAPStatusText() {
        return SAPStatusText;
    }

    public void setSAPStatus(int sAPStatus) {
        SAPStatus = sAPStatus;
    }

    public void setSAPStatusText(String sAPStatusText) {
        SAPStatusText = sAPStatusText;
    }

    @JsonProperty("SRPartID")
    public int getSRPartID() {
        return SRPartID;
    }

    @JsonProperty("SRPartName")
    public String getSRPartName() {
        return SRPartName;
    }

    @JsonProperty("SRProductNo")
    public String getSRProductNo() {
        return SRProductNo;
    }

    public void setSRPartID(int sRPartID) {
        SRPartID = sRPartID;
    }

    public void setSRPartName(String sRPartName) {
        SRPartName = sRPartName;
    }

    public void setSRProductNo(String sRProductNo) {
        SRProductNo = sRProductNo;
    }

    @JsonProperty("ImageUrl")
    public String getImageUrl() {
        return ImageUrl;
    }

    public void setImageUrl(String imageUrl) {
        ImageUrl = imageUrl;
    }

    @JsonProperty("IsLGL")
    public int getIsLGL() {
        return IsLGL;
    }

    public void setIsLGL(int isLGL) {
        IsLGL = isLGL;
    }

    @JsonProperty("IsQualityLoss")
    public int getIsQualityLoss() {
        return IsQualityLoss;
    }

    @JsonProperty("QualityLossBig")
    public String getQualityLossBig() {
        return QualityLossBig;
    }

    @JsonProperty("QualityLossSmall")
    public String getQualityLossSmall() {
        return QualityLossSmall;
    }

    public void setIsQualityLoss(int isQualityLoss) {
        IsQualityLoss = isQualityLoss;
    }

    public void setQualityLossBig(String qualityLossBig) {
        QualityLossBig = qualityLossBig;
    }

    public void setQualityLossSmall(String qualityLossSmall) {
        QualityLossSmall = qualityLossSmall;
    }

    @JsonProperty("LevelA")
    public boolean isLevelA() {
        return LevelA;
    }

    public void setLevelA(boolean levelA) {
        LevelA = levelA;
    }

    @JsonProperty("LevelB")
    public boolean isLevelB() {
        return LevelB;
    }

    public void setLevelB(boolean levelB) {
        LevelB = levelB;
    }

    @JsonProperty("LevelC")
    public boolean isLevelC() {
        return LevelC;
    }

    public void setLevelC(boolean levelC) {
        LevelC = levelC;
    }

    @JsonProperty("VersionNo")
    public String getVersionNo() {
        return VersionNo;
    }

    public void setVersionNo(String versionNo) {
        VersionNo = versionNo;
    }

    @JsonProperty("CovaType")
    public int getCovaType() {
        return CovaType;
    }

    public void setCovaType(int covaType) {
        CovaType = covaType;
    }

    @JsonProperty("IsPost")
    public int getIsPost() {
        return IsPost;
    }

    public void setIsPost(int isPost) {
        IsPost = isPost;
    }

    @JsonProperty("PostMsg")
    public String getPostMsg() {
        return PostMsg;
    }

    public void setPostMsg(String postMsg) {
        PostMsg = postMsg;
    }

    @JsonProperty("CovaTypeText")
    public String getCovaTypeText() {
        return CovaTypeText;
    }

    public void setCovaTypeText(String covaTypeText) {
        CovaTypeText = covaTypeText;
    }

    @JsonProperty("IsWorkArea")
    public boolean isWorkArea() {
        return IsWorkArea;
    }

    public void setWorkArea(boolean workArea) {
        IsWorkArea = workArea;
    }

    @JsonProperty("IsLGLText")
    public String getIsLGLText() {
        return IsLGLText;
    }

    public void setIsLGLText(String isLGLText) {
        IsLGLText = isLGLText;
    }
}
